﻿
using System;
namespace ASD
{
    class Program
    {
        static void Main(string[] args)
        {
            //            编写一个程序，以实现机器人的层次结构，
            //此层次结构将至少包含抽象类机器人类Robot、炒菜机器人类CookRobot、传菜机器人类DeliveryRobot。
            //Robot类应包含机器人姓名name字段、机器人工作的方法Working()，该方法应该在子类中被实现，
            //机器人工作的方式很多，所以Working()方法应该被定义为抽象方法。

            //可以在CookRobot中添加一个代表菜的类型的字段，用枚举类型；
            //在DeliveryRobot中添加一个代表连续工作时长的字段hours。
            //CookRobot和DeliveryRobot应实现具体的Working()方法。

            //在主类中定义一个方法，形参数据类型是string，返回值数据类型是Robot，
            //方法中实现如果传入的字符串是“炒菜”，那就返回CookRobot的实例（当然是要用Robot的引用指向的），
            //如果传入的字符串是“传菜”，那就返回DeliveryRobot的实例。

            //Main方法中：用户输入所选择的机器人的功能，根据用户的输入Robot执行对应的功能。
            Program program = new Program();

            Console.WriteLine("请输入“炒菜”或“传菜”");

            while (true)
            {
                string Order = Console.ReadLine();
                switch (Order)
                {
                    case "炒菜":
                        program.Change(Order);
                        break;
                    case "传菜":
                        program.Change(Order);
                        break;
                    default:
                        Console.WriteLine("输入了错误的指令，请重新输入！");
                        break;
                }
                break;
            }

        }

        public Robot Change(string order)
        {
            if (order == "炒菜")
            {
                string[] fd = Enum.GetNames(typeof(CookRobot.food));
                Console.WriteLine("请输入要炒的菜的编号：");
                for (int i = 0; i < fd.Length; i++)
                {
                    Console.Write("{0}.{1} ", (i + 1), fd[i]);
                    Console.WriteLine(" ");
                }
                int x = int.Parse(Console.ReadLine());
                Console.WriteLine("开始炒" + fd[(x - 1)]);
                CookRobot cookRobot = new CookRobot();
                return cookRobot;
            }
            else if (order == "传菜")
            {
                DeliveryRobot deliveryRobot = new DeliveryRobot();
                deliveryRobot.Working();
                return deliveryRobot;
            }
            else
            {
                DeliveryRobot deliveryRobot = new DeliveryRobot();
                return deliveryRobot;
            }
            
        }
    }
}

